home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: SPECMAN E-LANGUAGE
- " Maintainer: Or Freund <or@mobilian.com ;omf@gmx.co.uk>
- " Last Update: Wed Sep 5 2001
-
- "---------------------------------------------------------
- "| If anyone found an error or fix the parenthesis part |
- "| I will be happy to hear about it |
- "| Thanks Or. |
- "---------------------------------------------------------
-
- " Remove any old syntax stuff hanging around
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
-
- syn keyword specmanTodo contained TODO todo ToDo FIXME XXX
-
- syn keyword specmanStatement var instance on compute start event expect check that routine
- syn keyword specmanStatement specman is also first only with like
- syn keyword specmanStatement list of all radix hex dec bin ignore illegal
- syn keyword specmanStatement traceable untraceable
- syn keyword specmanStatement cover using count_only trace_only at_least transition item ranges
- syn keyword specmanStatement cross text call task within
-
- syn keyword specmanMethod initialize non_terminal testgroup delayed exit finish
- syn keyword specmanMethod out append print outf appendf
- syn keyword specmanMethod post_generate pre_generate setup_test finalize_test extract_test
- syn keyword specmanMethod init run copy as_a set_config dut_error add clear lock quit
- syn keyword specmanMethod lock unlock release swap quit to_string value stop_run
- syn keyword specmanMethod crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all
- syn keyword specmanMethod apply average count delete exists first_index get_indices
- syn keyword specmanMethod has insert is_a_permutation is_empty key key_exists key_index
- syn keyword specmanMethod last last_index max max_index max_value min min_index
- syn keyword specmanMethod min_value or_all pop pop0 push push0 product resize reverse
- syn keyword specmanMethod sort split sum top top0 unique clear is_all_iterations
- syn keyword specmanMethod get_enclosing_unit hdl_path exec deep_compare deep_compare_physical
- syn keyword specmanMethod pack unpack warning error fatal
- syn match specmanMethod "size()"
- syn keyword specmanPacking packing low high
- syn keyword specmanType locker address
- syn keyword specmanType body code vec chars
- syn keyword specmanType integer real bool int long uint byte bits bit time string
- syn keyword specmanType byte_array external_pointer
- syn keyword specmanBoolean TRUE FALSE
- syn keyword specmanPreCondit #ifdef #ifndef #else
-
- syn keyword specmanConditional choose matches
- syn keyword specmanConditional if then else when try
-
-
-
- syn keyword specmanLabel case casex casez default
-
- syn keyword specmanLogical and or not xor
-
- syn keyword specmanRepeat until repeat while for from to step each do break continue
- syn keyword specmanRepeat before next sequence always -kind network
- syn keyword specmanRepeat index it me in new return result select
-
- syn keyword specmanTemporal cycle sample events forever
- syn keyword specmanTemporal wait change negedge rise fall delay sync sim true detach eventually emit
-
- syn keyword specmanConstant MAX_INT MIN_INT NULL UNDEF
-
- syn keyword specmanDefine define as computed type extend
- syn keyword specmanDefine verilog vhdl variable global sys
- syn keyword specmanStructure struct unit
- syn keyword specmanInclude import
- syn keyword specmanConstraint gen keep keeping soft before
-
- syn keyword specmanSpecial untyped symtab ECHO DOECHO
- syn keyword specmanFile files load module ntv source_ref script read write
- syn keyword specmanFSM initial idle others posedge clock cycles
-
-
- syn match specmanOperator "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]"
- syn match specmanOperator "+="
- syn match specmanOperator "-="
- syn match specmanOperator "*="
-
- syn match specmanComment "//.*" contains=specmanTodo
- syn match specmanComment "--.*"
- syn region specmanComment start="'>"hs=s+2 end="<'"he=e-2
-
- syn match specmanHDL "'[`.a-zA-Z0-9_@\[\]]\+\>'"
-
-
- syn match specmanCompare "=="
- syn match specmanCompare "!==="
- syn match specmanCompare "==="
- syn match specmanCompare "!="
- syn match specmanCompare ">="
- syn match specmanCompare "<="
- syn match specmanNumber "[0-9]:[0-9]"
- syn match specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
- syn match specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>"
- syn match specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
- syn match specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>"
- syn match specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
- syn match specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
- syn match specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>"
- syn match specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
-
- syn region specmanString start=+"+ end=+"+
-
-
-
- "**********************************************************************
- " I took this section from c.vim but I didnt succeded to make it work
- " ANY one who dare jumping to this deep watter is more than welocome!
- "**********************************************************************
- ""catch errors caused by wrong parenthesis and brackets
-
- "syn cluster specmanParenGroup contains=specmanParenError
- "" ,specmanNumbera,specmanComment
- "if exists("specman_no_bracket_error")
- "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup
- "syn match specmanParenError ")"
- "syn match specmanErrInParen contained "[{}]"
- "else
- "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket
- "syn match specmanParenError "[\])]"
- "syn match specmanErrInParen contained "[\]{}]"
- "syn region specmanBracket transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen
- "syn match specmanErrInBracket contained "[);{}]"
- "endif
- "
-
- "Modify the following as needed. The trade-off is performance versus
- "functionality.
-
- syn sync lines=50
-
- " Define the default highlighting.
- " For version 5.7 and earlier: only when not done already
- " For version 5.8 and later: only when an item doesn't have highlighting yet
- if version >= 508 || !exists("did_specman_syn_inits")
- if version < 508
- let did_specman_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later
- HiLink specmanConditional Conditional
- HiLink specmanConstraint Conditional
- HiLink specmanRepeat Repeat
- HiLink specmanString String
- HiLink specmanComment Comment
- HiLink specmanConstant Macro
- HiLink specmanNumber Number
- HiLink specmanCompare Operator
- HiLink specmanOperator Operator
- HiLink specmanLogical Operator
- HiLink specmanStatement Statement
- HiLink specmanHDL SpecialChar
- HiLink specmanMethod Function
- HiLink specmanInclude Include
- HiLink specmanStructure Structure
- HiLink specmanBoolean Boolean
- HiLink specmanFSM Label
- HiLink specmanSpecial Special
- HiLink specmanType Type
- HiLink specmanTemporal StorageClass
- HiLink specmanFile Include
- HiLink specmanPreCondit Include
- HiLink specmanDefine Typedef
- HiLink specmanLabel Label
- HiLink specmanPacking keyword
- HiLink specmanTodo Todo
- HiLink specmanParenError Error
- HiLink specmanErrInParen Error
- HiLink specmanErrInBracket Error
- delcommand HiLink
- endif
-
- let b:current_syntax = "specman"
-